1. Field of the Invention
This invention relates generally to asynchronous data communication among a bus master and a plurality of bus users. More particularly, this invention relates to methods and apparatus for providing a bus user with the maximum possible bandwidth.
2. State of the Art
Data communication among a bus master and a plurality of bus users is well known in the art. Such communication systems generally include a bidirectional data bus to which the bus master and all of the bus users are connected. The bus master typically produces at least one synchronizing clock signal which is received by all of the bus users on a clock bus separate from the data bus. One data unit which is equal to the bus width can be transferred onto the bus or off the bus during one clock cycle. While all bus users can transfer data off the bus simultaneously, only one bus user can transfer data onto the bus during any given clock cycle. The bus user (which could be the bus master) transferring data onto the bus is said to have “access” or to be “active”. In order to determine which bus user is given access during a given clock cycle, an arbitration procedure is established. Typically, each bus user is assigned a time slot in a fixed number of time slots called a data “frame”. The frame which defines bus access may be provided with one or more time slots for the exchange of control information in addition to the time slots which are assigned to data transfer. As the clock cycles are received by all of the bus users via the clock bus, each bus user waits for its assigned time slot and then transfers data to the bus during its assigned cycle.
It is recognized that, particularly in asynchronous data transfer systems, bus users are not always ready to transfer data onto the bus during their assigned time slot. Conversely, other bus users may accumulate data for transfer onto the bus faster than their assigned access to the frame will allow them to transfer the data onto the bus. Consequently, it is often desirable to adjust the access mechanism to allow some users relatively more access than others; i.e., more slots in the frame. Many sophisticated algorithms have been developed for arbitrating bus access. However, these known systems typically require that each bus user be aware of the arbitration scheme so that each bus user can tell how much access it has been allocated.
Previously incorporated co-owned U.S. Pat. No. 5,901,146 and No. 6,104,724 disclose an asynchronous data transfer and source traffic control system as shown in prior art FIG. 2. The system includes a bus master 100 and a plurality of bus users, e.g. 112, 114, 116, coupled to a bidirectional data bus 118. The bus master 100 provides two clock signals to each bus user, a system clock 120 and a frame clock 122. The backplane may also include an acknowledge line 126 and a congestion line 128. The frame clock designates the start of a frame. Prior art FIG. 3 illustrates a frame format which preferably includes fifteen or sixteen system clock cycles, the first of which is designated the request field and the last of which includes a grant field. One or more other cycles may be assigned control and/or routing information and the remainder of the cycles comprise a data field of fixed length. During the request field, any number of bus users may request access which is received by the bus master. During the grant field, the bus master grants access to a selected bus user for the entire data portion of the next frame. Which user is granted access to the next frame is determined according to an arbitration algorithm in the bus master which may be unknown to the bus users. The asynchronous data transfer and source traffic control system has particular application in accommodating the transfer of the contents of ATM cells used in BISDN systems. More particularly, this co-owned technology is used in the manufacture of ATM switches and is sold under the brand name CellBus®.
The co-owned CellBus® technology is based on a data bus which is thirty-two bits wide. The protocol supports either sixteen or thirty-two users. When in sixteen user mode, a maximum of sixteen devices may be coupled to the same bus. Each of the sixteen devices can request access to the bus for any frame and thus any device can utilize the full bandwidth of the bus. Access is requested by asserting one or both of two data lines assigned to the user. The two-bit request permits three levels of priority, 01 being a priority 1 request, 10 being a priority 2 request and 11 being a priority 3 request. In thirty-two user mode, a maximum of thirty-two devices can be coupled to the same bus but, in order to maintain prioritization of the requests, each device can only request access to the bus every other frame. For example, devices 1-16 may request access to even frames while devices 17-32 may request access to odd frames. Therefore, in thirty-two user mode, each device can only request a maximum of half the available bandwidth of the bus.
In a typical CellBus® application, one (or sometimes two) of the devices are connected to network links while all other devices are connected to line cards with user links. These applications concentrate traffic from the user links to the network link and distribute traffic from the network link to the user links. It will be appreciated, therefore, that the network links require as much or more bandwidth as all of the line cards combined. In fact, in asymmetric applications (which are common, e.g. xDSL subscriptions) the network links require substantially more than half the bandwidth since most traffic flows from the network to the users. Thus, in many applications, it is undesirable to limit the amount of bandwidth available to some devices but it is still desirable to maintain the maximum possible number of devices coupled to the same bus.